5
תגובות

שליפת נתונים

פתח soogo ,
יש לי מחלקה לניהול תפריט ומחלקה לניהול משתמשים
והשאלה היא מה עדיף מתודה ששולפת נתונים מהמסד בכל אחד מהם או מחלקה אחרת שמזינים לה את שם הטבלה והיא שולפת נתונים
class Menu
{
    public function Select()
    {
        Query;
        return array;
    }
}

class User
{
    public function Select()
    {
        Query;
        return array;
    }
}

או
class DB
{
    public function Select($Table)
    {
        Query;
        return array;
    }
}

5 תשובות

avatar ענה Splash ב 20 למרץ 2015 #

אין כאן עדיפות,הדעות הן די חלוקות ועניין של עדיפות אישית. מה שבטוח זה אם אתה משתמש באפשרות א' ממש לא יוצרים מתודה לכל מודל אלה יוצרים מחלקת אב ואז ביורשים מייחסים את הטבלה שממנה שולפים.

avatar ענה soogo ב 20 למרץ 2015 #

יש לך דוגמה להסבר על המחלקת אב?

avatar ענה Splash ב 20 למרץ 2015 #

משהו בסגנון הזה -

class Model{
    protected $table;
    public function Select($columns = '*'){
        //some query builder goes here using $columns and $table
    }
}
class Menu extends Model{
    protected $table = 'Menu_Table';
}

(new Menu)->Select();

avatar ענה soogo ב 23 למרץ 2015 #

אז מה שאתה אומר שאפשרות א'
זה ליצור מחלקת DB עם כל מיני שאילתות אפשריות ובמחלקה של התפריט/משתמשים להשתמש במחלקת DB
שזה בדיוק כמו אפשרות ב'

avatar ענה Splash ב 23 למרץ 2015 #

זה הבדל של שמים וארץ בין מחלקה שיורשת למחלקה שמשתמשת בפועל Model ככל הנראה יהיה אבסטרקטי ויממש מספר אינטרפייסים,זה היה בסך הכל דוגמא.